Integration system for communications networks

ABSTRACT

Embodiments of the disclosure provide methods, systems, apparatuses, and computer program products for facilitating communications between a plurality of devices and subsystems on a first network (for example, a first cable network) and one or more devices and subsystems on a second network (for example, a second cable network) using an integration system on the first network. In one embodiment, the integration system may allow for deployment of new systems or infrastructures that can cooperatively operate with legacy systems already deployed on the first or second networks. Particular embodiments of the subject matter may reduce the cost associated with deploying, upgrading and/or maintaining the devices and systems on the first and/or second networks.

PRIORITY INFORMATION

This application claims the benefit of U.S. patent application Ser. No.15/672,282, filed on Aug. 8, 2017, which claims the benefit of U.S.Provisional Patent Application No. 62/372,146, filed on Aug. 8, 2016,the disclosure of which is incorporated herein by reference in itsentirety.

TECHNICAL FIELD

This disclosure generally relates to communication systems.

BACKGROUND

Service providers, such as cable providers, cellular providers, and/orsatellite providers, may provide media using media broadcasts, on demandvideo, calls, email, and the like to a plurality of different devices(for example, television, mobile phone, tablets, set-top boxes and thelike). Such service providers may also connect user devices tocommunications networks such as the Internet and/or cable networks.Deploying infrastructure for the services described above, in manycases, may be costly, and integrating legacy devices with newinfrastructure technologies can be challenging.

BRIEF DESCRIPTION OF THE DRAWINGS

Reference will now be made to the accompanying drawings, which are notnecessarily drawn to scale, and wherein:

FIG. 1 shows an overview of a system that can be used in connection withvarious embodiments of the disclosure, in accordance with one or moreexample embodiments of the disclosure;

FIG. 2 shows an example schematic diagram of an integration system, inaccordance with one or more example embodiments of the disclosure;

FIG. 3 shows an example schematic diagram of a user device, inaccordance with one or more example embodiments of the disclosure;

FIG. 4 shows a diagram representing a system architecture, showing anintegration system on a home network communicating with a third-partyback office over the Internet, in accordance with one or more exampleembodiments of the disclosure;

FIG. 5 shows a diagram representing an additional level of detail of thediagram shown in FIG. 4, which described the system architectureincluding the integration system in accordance with one or more exampleembodiments;

FIG. 6 shows an example flow diagram showing example procedures andoperations of the disclosed integration system that may be completed inaccordance with one or more example embodiments of the disclosure;

FIG. 7 shows an example flow diagram describing an example operationassociated with a provisioning and/or entitlement functionality of theintegration system, in accordance with one or more example embodimentsof the disclosure;

FIG. 8 shows an example flow diagram describing an example operationassociated with a metadata and/or service assurance functionality of theintegration system, in accordance with one or more example embodimentsof the disclosure;

FIG. 9 shows an example flow diagram describing an example operationassociated with a metadata functionality of the integration system, inaccordance with one or more example embodiments of the disclosure;

FIG. 10 shows an example flow diagram describing example operationassociated with a provisioning and/or entitlements functionality of theintegration system, in accordance with one or more example embodimentsof the disclosure;

FIG. 11 shows an example flow diagram describing example operationassociated with a metadata and/or provisioning functionality of theintegration system, in accordance with one or more example embodimentsof the disclosure;

FIG. 12 shows an example flow diagram describing an example operationassociated with a provisioning functionality of the integration system,in accordance with one or more example embodiments of the disclosure;

FIG. 13 shows an example flow diagram describing example operationassociated with the metadata functionality of the integration system, inaccordance with one or more example embodiments of the disclosure;

FIG. 14 shows an example flow diagram describing example operationassociated with another metadata functionality of the integrationsystem, in accordance with one or more example embodiments of thedisclosure;

FIG. 15 shows an example flow diagram described in example operationassociated with a service assurance functionality of the integrationsystem, in accordance with one or more example embodiments of thedisclosure; and

FIG. 16 shows an example flow diagram describing an example operationassociated with another service assurance functionality of theintegration system, in accordance with one or more example embodimentsof the disclosure.

DETAILED DESCRIPTION

In one embodiment, this disclosure relates, in part, to systems andmethods for an integration system for facilitating data (for example,video data, audio data, email data, and/or the like) provisioning andmanagement over networks, for example, one or more cable networks. Invarious embodiments, the disclosure relates generally to the integrationof different cable networks. For example, the disclosure describes theintegration, using an integration system, of an MSO (Multi-SystemOperator) cable network (referred interchangeably herein as homenetwork, and/or home cable network, and the like) and associatedsystems, with a third-party network (referred interchangeably herein aspartner network, third-party back office, third-party back officenetwork, and/or third-party computers, and the like). In one embodiment,the integration of the home cable network can include the inclusion of athird-party network's self-contained media client platform (for example,in the form of an application) on one or more devices (for example, oneor more set-top boxes) associated with the home network. In anotherembodiment, the disclosure describes, in various embodiments, theintegration of an MSO's media systems (such as video on demand (VOD)back-office computers, switched digital servers (SDSs), cable headendcontrollers, emergency alert systems, monitoring systems, billingsystems, account provisioning systems, associated networkinfrastructures and/or the like), with third-party network systems andcomputers, for example, through on-site or cloud-hosted middlewareintegration systems and/or servers using the integration system.

In various embodiments, described herein include data processing systemsand methods for integrating existing home network systems, for example,existing MSO back office systems with one or more systems of thethird-party network, in order to enable a standalone, self-containedthird-party media client provider to deliver media services on the homenetwork on behalf of a cable operator on the home network. In someembodiments, the systems and methods for integrating existing homenetwork systems, for example, existing MSO back office systems, may becapable of delivering cable-operator specific information regarding thesystems, devices, accounts and content to one or more users, forexample, to offer existing and/or new subscribers video service on thethird-party video client software running on the home network's devices.

In an embodiment, the systems and methods described herein can enablethe gathering of data from the home network's existing systems (forexample, data specifying home network device capabilities, accountprovisioning information, linear media and video on demand (VOD) contentavailability and entitlement information and/or requirements, channelinformation, for example, in the form of meta-data, switched digitalvideo configuration details, pay-per-view (PPV) scheduling and pricingdata) in order to enable the third-party video client software tofacilitate integration between the home network and the third-partynetwork.

In addition, the systems and methods may facilitate provisioningaccounts and/or devices from the home network's existing provisioningsystems to the third-party video client provider's back-office systems,for example, in order to enable service for subscribers on the homenetwork. For example, the systems and methods may allow existing or newcustomers to receive media services (such as cable transmissions) on thethird-party client software. In one embodiment, operations to providesuch capabilities may include the integration system providingfunctionality to integrate with the home network's existing provisioningsystem, providing operations to indicate, via a flag identifying acustomer as receiving the service, and to transmit account, device andentitlement information to a third-party network's back office systems,for example, at one or more back office system computers. In someembodiments the disclosed systems and methods may provide bidirectional,secure (for example, encrypted) communication between existingdiagnostics and monitoring systems on the home network in associationwith the third-party network. One or more embodiments of the disclosuremay describe an integration system that provides a home cable network'ssubscribers with the ability to receive media subscription services froma standalone, self-contained third-party media client system on behalfof the home network, for example, using a third-party applicationrunning on a home network device (such as a set-top box).

In one embodiment, the subject matter described herein can beimplemented so as to provide accurate and efficient methods and systemsfor integrating various legacy systems or infrastructure with newsystems or infrastructures. In turn, the integration system may, invarious embodiments, allow for deployment of new systems orinfrastructures that can cooperatively operate with legacy systemsalready deployed in a given network (for example, a home network and/ora third-party network). Particular embodiments of the subject matter mayreduce the cost associated with deploying, upgrading and/or maintainingdata provisioning systems and other functions associated with theintegration system and/or any related subsystems (for example, abillings system) and, in turn, can increase the overall revenue of acable network. In one embodiment, the disclosed systems and methods canserve to reduce the processing power for servers. Similarly, thedisclosed systems and methods can serve to reduce the processing powerof one of more systems (such as servers) on a network (such as a cablenetwork), and thereby increase the overall revenue generated from thenetwork.

The details of one or more embodiments of the subject matter describedherein are set forth in the accompanying drawings and the descriptionbelow. Other features, aspects, and advantages of the subject matterwill become apparent from the description, the drawings, and the claims.Various embodiments of the present disclosure now will be describedhereinafter with reference to the accompanying drawings, in which some,but not all embodiments are shown. Indeed, the disclosure may beembodied in many different forms and should not be construed as limitedto the embodiments set forth herein; rather, these embodiments areprovided so that this disclosure will satisfy applicable legalrequirements. The term “or” is used herein in both the alternative andconjunctive sense, unless otherwise indicated. The terms “illustrative”and “example” are used to be examples with no indication of qualitylevel. Like numbers refer to like elements throughout. In oneembodiment, arrows in each of the figures depict bi-directional dataflow and/or bi-directional data flow capabilities.

Embodiments of the present disclosure may be implemented in variousways, including as computer program products that comprise articles ofmanufacture. A computer program product may include a non-transitorycomputer-readable storage medium storing applications, programs, programmodules, scripts, source code, program code, object code, byte code,compiled code, interpreted code, machine code, executable instructions,and/or the like (also referred to herein as executable instructions,instructions for execution, computer program products, program code,and/or similar terms used herein interchangeably). Such non-transitorycomputer-readable storage media include all computer-readable media(including volatile and non-volatile media).

In one embodiment, a non-volatile computer-readable storage medium mayinclude a floppy disk, flexible disk, hard disk, solid-state storage(SSS) (for example, a solid state drive (SSD)), solid state card (SSC),solid state module (SSM), enterprise flash drive, magnetic tape, or anyother non-transitory magnetic medium, and/or the like. A non-volatilecomputer-readable storage medium may also include a punch card, papertape, optical mark sheet (or any other physical medium with patterns ofholes or other optically recognizable indicia), compact disc read onlymemory (CD-ROM), compact disc-rewritable (CD-RW), digital versatile disc(DVD), Blu-ray disc (BD), any other non-transitory optical medium,and/or the like. Such a non-volatile computer-readable storage mediummay also include read-only memory (ROM), programmable read-only memory(PROM), erasable programmable read-only memory (EPROM), electricallyerasable programmable read-only memory (EEPROM), flash memory (forexample, Serial, NAND, NOR, and/or the like), multimedia memory cards(MMC), secure digital (SD) memory cards, SmartMedia cards, CompactFlash(CF) cards, Memory Sticks, and/or the like. Further, a non-volatilecomputer-readable storage medium may also include conductive-bridgingrandom access memory (CBRAM), phase-change random access memory (PRAM),ferroelectric random-access memory (FeRAM), non-volatile random-accessmemory (NVRAM), magnetoresistive random-access memory (MRAM), resistiverandom-access memory (RRAM), Silicon-Oxide-Nitride-Oxide-Silicon memory(SONOS), floating junction gate random access memory (FJG RAM),Millipede memory, racetrack memory, and/or the like.

-   In one embodiment, a volatile computer-readable storage medium may    include random access memory (RAM), dynamic random access memory    (DRAM), static random access memory (SRAM), fast page mode dynamic    random access memory (FPM DRAM), extended data-out dynamic random    access memory (EDO DRAM), synchronous dynamic random access memory    (SDRAM), double data rate synchronous dynamic random access memory    (DDR SDRAM), double data rate type two synchronous dynamic random    access memory (DDR2 SDRAM), double data rate type three synchronous    dynamic random access memory (DDR3 SDRAM), Rambus dynamic random    access memory (RDRAM), Twin Transistor RAM (TTRAM), Thyristor RAM    (T-RAM), Zero-capacitor (Z-RAM), Rambus in-line memory module    (RIMM), dual in-line memory module (DIMM), single in-line memory    module (SIMM), video random access memory (VRAM), cache memory    (including various levels), flash memory, register memory, and/or    the like. It will be appreciated that where embodiments are    described to use a computer-readable storage medium, other types of    computer-readable storage media may be substituted for or used in    addition to the computer-readable storage media described above.

As may be appreciated, various embodiments of the present disclosure mayalso be implemented as methods, apparatus, systems, computing devices,computing entities, and/or the like. As such, embodiments of the presentdisclosure may take the form of an apparatus, system, computing device,computing entity, and/or the like executing instructions stored on acomputer-readable storage medium to perform certain steps or operations.Thus, embodiments of the present disclosure may also take the form of anentirely hardware embodiment, an entirely computer program productembodiment, and/or an embodiment that includes combinations of computerprogram products and hardware performing certain steps or operations.

Embodiments of the present disclosure may be described below withreference to block diagrams and flowchart illustrations. Thus, it may beunderstood that each block of the block diagrams and flowchartillustrations may be implemented in the form of a computer programproduct, an entirely hardware embodiment, a combination of hardware andcomputer program products, and/or apparatus, systems, computing devices,computing entities, and/or the like carrying out instructions,operations, steps, and similar words used interchangeably (for example,the executable instructions, instructions for execution, program code,and/or the like) on a computer-readable storage medium for execution.For example, retrieval, loading, and execution of code may be performedsequentially such that one instruction is retrieved, loaded, andexecuted at a time. In some example embodiments, retrieval, loading,and/or execution may be performed in parallel such that multipleinstructions are retrieved, loaded, and/or executed together. Thus, suchembodiments can produce specifically-configured machines performing thesteps or operations specified in the block diagrams and flowchartillustrations. Accordingly, the block diagrams and flowchartillustrations support various combinations of embodiments for performingthe specified instructions, operations, or steps.

FIG. 1 provides an illustration of an example embodiment of the presentdisclosure. As shown in FIG. 1, this particular embodiment may includethe integration system 100, one or more networks 105, and one or moreuser devices 110. These components, entities, devices, systems, andsimilar words used herein interchangeably may be in direct or indirectcommunication with, for example, one another over the same or differentwired or wireless networks. Additionally, while FIG. 1 illustrates thevarious system entities as separate, standalone entities, the variousembodiments are not limited to this particular architecture.

FIG. 2 provides a schematic of an integration system 100 according toone embodiment of the present disclosure. In general, the termscomputing entity, computer, entity, device, system, and/or similar wordsused herein interchangeably may refer to, for example, one or morecomputers, computing entities, desktop computers, mobile phones,tablets, phablets, notebooks, laptops, distributed systems, gamingconsoles (for example, Xbox, Play Station, Wii), watches, glasses,iBeacons, proximity beacons, key fobs, radio frequency identification(RFID) tags, ear pieces, scanners, televisions, dongles, cameras,wristbands, wearable items/devices, kiosks, input terminals, servers orserver networks, blades, gateways, switches, processing devices,processing entities, set-top boxes, relays, routers, network accesspoints, base stations, the like, and/or any combination of devices orentities adapted to perform the functions, operations, and/or processesdescribed herein. Such functions, operations, and/or processes mayinclude, for example, transmitting, receiving, operating on, processing,displaying, storing, determining, creating/generating, monitoring,evaluating, comparing, and/or similar terms used herein interchangeably.In one embodiment, these functions, operations, and/or processes can beperformed on data, content, information, and/or similar terms usedherein interchangeably.

As indicated, in one embodiment, the integration system 100 may alsoinclude one or more communications interfaces 220 for communicating withvarious computing entities, such as by communicating data, content,information, and/or similar terms used herein interchangeably that canbe transmitted, received, operated on, processed, displayed, stored,and/or the like. For instance, the integration system 100 maycommunicate with user devices 110 and/or a variety of other computingentities.

As shown in FIG. 2, in one embodiment, the integration system 100 mayinclude or be in communication with one or more processing elements 205(also referred to as processors, processing circuitry, and/or similarterms used herein interchangeably) that communicate with other elementswithin the integration system 100 via a bus, for example. As will beunderstood, the processing element 205 may be embodied in a number ofdifferent ways. For example, the processing element 205 may be embodiedas one or more complex programmable logic devices (CPLDs),microprocessors, multi-core processors, coprocessing entities,application-specific instruction-set processors (ASIPs),microcontrollers, and/or controllers. Further, the processing element205 may be embodied as one or more other processing devices orcircuitry. The term circuitry may refer to an entirely hardwareembodiment or a combination of hardware and computer program products.Thus, the processing element 205 may be embodied as integrated circuits,application specific integrated circuits (ASICs), field programmablegate arrays (FPGAs), programmable logic arrays (PLAs), hardwareaccelerators, other circuitry, and/or the like. As will therefore beunderstood, the processing element 205 may be configured for aparticular use or configured to execute instructions stored in volatileor non-volatile media or otherwise accessible to the processing element205. As such, whether configured by hardware or computer programproducts, or by a combination thereof, the processing element 205 may becapable of performing steps or operations according to embodiments ofthe present disclosure when configured accordingly.

In one embodiment, the integration system 100 may further include or bein communication with non-volatile media (also referred to asnon-volatile storage, memory, memory storage, memory circuitry and/orsimilar terms used herein interchangeably). In one embodiment, thenon-volatile storage or memory may include one or more non-volatilestorage or memory media 210, including but not limited to hard disks,ROM, PROM, EPROM, EEPROM, flash memory, MMCs, SD memory cards, MemorySticks, CBRAM, PRAM, FeRAM, NVRAM, MRAM, RRAM, SONOS, FJG RAM, Millipedememory, racetrack memory, and/or the like. As will be recognized, thenon-volatile storage or memory media may store databases, databaseinstances, database management systems, data, applications, programs,program modules, scripts, source code, object code, byte code, compiledcode, interpreted code, machine code, executable instructions, and/orthe like. The term database, database instance, database managementsystem, and/or similar terms used herein interchangeably may refer to acollection of records or data that is stored in a computer-readablestorage medium using one or more database models, such as a hierarchicaldatabase model, network model, relational model, entity—relationshipmodel, object model, document model, semantic model, graph model, and/orthe like.

In one embodiment, the integration system 100 may further include or bein communication with volatile media (also referred to as volatilestorage, memory, memory storage, memory circuitry and/or similar termsused herein interchangeably). In one embodiment, the volatile storage ormemory may also include one or more volatile storage or memory media215, including but not limited to RAM, DRAM, SRAM, FPM DRAM, EDO DRAM,SDRAM, DDR SDRAM, DDR2 SDRAM, DDR3 SDRAM, RDRAM, TTRAM, T-RAM, Z-RAM,RIMM, DIMM, SIMM, VRAM, cache memory, register memory, and/or the like.As will be recognized, the volatile storage or memory media may be usedto store at least portions of the databases, database instances,database management systems, data, applications, programs, programmodules, scripts, source code, object code, byte code, compiled code,interpreted code, machine code, executable instructions, and/or the likebeing executed by, for example, the processing element 205. Thus, thedatabases, database instances, database management systems, data,applications, programs, program modules, scripts, source code, objectcode, byte code, compiled code, interpreted code, machine code,executable instructions, and/or the like may be used to control certainaspects of the operation of the integration system 100 with theassistance of the processing element 205 and operating system.

As indicated, in one embodiment, the integration system 100 may alsoinclude one or more communications interfaces 220 for communicating withvarious computing entities, such as by communicating data, content,information, and/or similar terms used herein interchangeably that canbe transmitted, received, operated on, processed, displayed, stored,and/or the like. Such communication may be executed using a wired datatransmission protocol, such as fiber distributed data interface (FDDI),digital subscriber line (DSL), Ethernet, asynchronous transfer mode(ATM), frame relay, data over cable service interface specification(DOCSIS), or any other wired transmission protocol. Similarly, theintegration system 100 may be configured to communicate via wirelessexternal communication networks using any of a variety of protocols,such as general packet radio service (GPRS), Universal MobileTelecommunications System (UMTS), Code Division Multiple Access 2000(CDMA2000), CDMA2000 1× (1×RTT), Wideband Code Division Multiple Access(WCDMA), Time Division-Synchronous Code Division Multiple Access(TD-SCDMA), Long Term Evolution (LTE), Evolved Universal TerrestrialRadio Access Network (E-UTRAN), Evolution-Data Optimized (EVDO), HighSpeed Packet Access (HSPA), High-Speed Downlink Packet Access (HSDPA),IEEE 802.11 (Wi-Fi), Wi-Fi Direct, 802.16 (WiMAX), ultra-wideband (UWB),infrared (IR) protocols, near field communication (NFC) protocols,Wibree, Bluetooth protocols, wireless universal serial bus (USB)protocols, and/or any other wireless protocol.

Although not shown, the integration system 100 may include or be incommunication with one or more input elements, such as a keyboard input,a mouse input, a touch screen/display input, motion input, movementinput, audio input, pointing device input, joystick input, keypad input,and/or the like. The integration system 100 may also include or be incommunication with one or more output elements (not shown), such asaudio output, video output, screen/display output, motion output,movement output, and/or the like.

As will be appreciated, one or more of the integration system's 100components may be located remotely from other integration system 100components, such as in a distributed system. Furthermore, one or more ofthe components may be combined and additional components performingfunctions described herein may be included in the integration system100. Thus, the integration system 100 can be adapted to accommodate avariety of needs and circumstances. As will be recognized, thesearchitectures and descriptions are provided for example purposes onlyand are not limiting to the various embodiments.

A user may be an individual, a family, a company, an organization, anentity, a department within an organization, a representative of anorganization and/or person, and/or the like. In one example, users maybe employees, residents, customers, and/or the like. For instance, auser may operate a user device 110 that includes one or more componentsthat are functionally similar to those of the integration system 100.FIG. 3 provides an illustrative schematic representative of a userdevice 110 that can be used in conjunction with embodiments of thepresent disclosure. In general, the terms device, system, computingentity, entity, and/or similar words used herein interchangeably mayrefer to, for example, one or more set-top boxes, computers, computingentities, desktops, mobile phones, tablets, phablets, notebooks,laptops, distributed systems, gaming consoles (for example, Xbox, PlayStation, Wii), watches, glasses, key fobs, radio frequencyidentification (RFID) tags, ear pieces, scanners, cameras, wristbands,kiosks, input terminals, servers or server networks, blades, gateways,switches, processing devices, processing entities, set-top boxes,relays, routers, network access points, base stations, the like, and/orany combination of devices or entities adapted to perform the functions,operations, and/or processes described herein. User devices 110 can beoperated by various parties. As shown in FIG. 3, the user device 110 caninclude an antenna 312, a transmitter 304 (for example, radio), areceiver 306 (for example, radio), and a processing element 308 (forexample, CPLDs, microprocessors, multi-core processors, coprocessingentities, ASIPs, microcontrollers, and/or controllers) that providessignals to and receives signals from the transmitter 304 and receiver306, respectively.

The signals provided to and received from the transmitter 304 and thereceiver 306, respectively, may include signaling information inaccordance with air interface standards of applicable wireless systems.In this regard, the user device 110 may be capable of operating with oneor more air interface standards, communication protocols, modulationtypes, and access types. More particularly, the user device 110 mayoperate in accordance with any of a number of wireless communicationstandards and protocols, such as those described above with regard tothe integration system 100. In a particular embodiment, the user device110 may operate in accordance with multiple wireless communicationstandards and protocols, such as UMTS, CDMA2000, 1×RTT, WCDMA, TD-SCDMA,LTE, E-UTRAN, EVDO, HSPA, HSDPA, Wi-Fi, Wi-Fi Direct, WiMAX, UWB, IR,NFC, Bluetooth, USB, and/or the like. Similarly, the user device 110 mayoperate in accordance with multiple wired communication standards andprotocols, such as those described above with regard to the integrationsystem 100 via a network interface 320.

Via these communication standards and protocols, the user device 110 cancommunicate with various other entities using concepts such asUnstructured Supplementary Service Data (USSD), Short Message Service(SMS), Multimedia Messaging Service (MMS), Dual-Tone Multi-FrequencySignaling (DTMF), and/or Subscriber Identity Module Dialer (SIM dialer).The user device 110 can also download changes, add-ons, and updates, forinstance, to its firmware, software (for example, including executableinstructions, applications, program modules), and operating system.

According to one embodiment, the user device 110 may include locationdetermining aspects, devices, modules, functionalities, and/or similarwords used herein interchangeably. For example, the user device 110 mayinclude outdoor positioning aspects, such as a location module adaptedto acquire, for example, latitude, longitude, altitude, geocode, course,direction, heading, speed, universal time (UTC), date, and/or variousother information/data. In one embodiment, the location module canacquire data, sometimes known as ephemeris data, by identifying thenumber of satellites in view and the relative positions of thosesatellites. The satellites may be a variety of different satellites,including Low Earth Orbit (LEO) satellite systems, Department of Defense(DOD) satellite systems, the European Union Galileo positioning systems,the Chinese Compass navigation systems, Indian Regional Navigationalsatellite systems, and/or the like. Alternatively, the locationinformation can be determined by triangulating the user device's 110position in connection with a variety of other systems, includingcellular towers, Wi-Fi access points, and/or the like. Similarly, theuser device 110 may include indoor positioning aspects, such as alocation module adapted to acquire, for example, latitude, longitude,altitude, geocode, course, direction, heading, speed, time, date, and/orvarious other information/data. Some of the indoor systems may usevarious position or location technologies including RFID tags, indoorbeacons or transmitters, Wi-Fi access points, cellular towers, nearbycomputing devices (for example, smartphones, laptops) and/or the like.For instance, such technologies may include the iBeacons, Gimbalproximity beacons, Bluetooth Low Energy (BLE) transmitters, NFCtransmitters, and/or the like. These indoor positioning aspects can beused in a variety of settings to determine the location of someone orsomething to within inches or centimeters.

The user device 110 may also comprise a user interface (that can includea display 316 coupled to a processing element 308) and/or a user inputinterface (coupled to a processing element 308). For example, the userinterface may be a user application, browser, user interface, and/orsimilar words used herein interchangeably executing on and/or accessiblevia the user device 110 to interact with and/or cause display ofinformation from the integration system 100, as described herein. Theuser input interface can comprise any of a number of devices orinterfaces allowing the user device 110 to receive data, such as akeypad 318 (hard or soft), a touch display, voice/speech or motioninterfaces, or other input device. In embodiments including a keypad318, the keypad 318 can include (or cause display of) the conventionalnumeric (0-9) and related keys (#, *), and other keys used for operatingthe user device 110 and may include a full set of alphabetic keys or setof keys that may be activated to provide a full set of alphanumerickeys. In addition to providing input, the user input interface can beused, for example, to activate or deactivate certain functions, such asscreen savers and/or sleep modes.

The user device 110 can also include volatile storage or memory 322and/or non-volatile storage or memory 324, which can be embedded and/ormay be removable. For example, the non-volatile memory may be ROM, PROM,EPROM, EEPROM, flash memory, MMCs, SD memory cards, Memory Sticks,CBRAM, PRAM, FeRAM, NVRAM, MRAM, RRAM, SONOS, FJG RAM, Millipede memory,racetrack memory, and/or the like. The volatile memory may be RAM, DRAM,SRAM, FPM DRAM, EDO DRAM, SDRAM, DDR SDRAM, DDR2 SDRAM, DDR3 SDRAM,RDRAM, TTRAM, T-RAM, Z-RAM, RIMM, DIMM, SIMM, VRAM, cache memory,register memory, and/or the like. The volatile and non-volatile storageor memory can store databases, database instances, database managementsystems, data, applications, programs, program modules, scripts, sourcecode, object code, byte code, compiled code, interpreted code, machinecode, executable instructions, and/or the like to implement thefunctions of the user device 110. As indicated, this may include a userapplication that is resident on the entity or accessible through abrowser or other user interface for communicating with the integrationsystem 100 and/or various other computing entities.

In another embodiment, the user device 110 may include one or morecomponents or functionality that are the same or similar to those of theintegration system 100, as described in greater detail above. As will berecognized, these architectures and descriptions are provided forexample purposes only and are not limiting to the various embodiments.

In various embodiments, the disclosure relates generally to theintegration of cable network, for example, a home network comprising aMSO (Multi-System Operator) cable network (referred interchangeablyherein as home network, and/or home cable network), and associatedsystems, with a third-party network (referred interchangeably herein aspartner network). In one embodiment, the integration of the cablenetwork can include the inclusion of a third-party network'sself-contained video client solution on one or more devices associatedwith the home network. In another embodiment, the disclosure describes,in various embodiments, the integration of an MSO's media systems (suchas video on demand back-offices, switched digital servers, cable headendcontrollers, emergency alert systems, monitoring systems, billingsystems account provisioning systems, associated networkinfrastructures, and/or the like), with the third-party network, throughon-site or cloud-hosted middleware integration systems and/or servers.

In various embodiments, described herein are data processing systems andmethods for integrating existing home network systems, for example,existing MSO back office systems with one or more systems of thethird-party network, in order to enable a standalone, self-containedthird-party media client provider to deliver media services on the homenetwork on behalf of a cable operator. In some embodiments, the systemand method for integrating existing home network systems, for example,existing MSO back office systems, may be capable of deliveringcable-operator specific information regarding the systems, devices,accounts and content necessary for offering existing and/or newsubscribers video service on the third-party video client software.

In an embodiment, the systems and methods described herein can enablegathering data from the home network's existing systems (for example,data specifying device capabilities, account provisioning information,linear media and video on demand (VOD) content availability andentitlement information and/or requirements, channel information, forexample, in the form of meta-data, switched digital video configurationdetails, pay-per-view (PPV) scheduling and pricing data) in order toenable the third-party video client software to facilitate integrationbetween the home network and the third-party network.

In addition, the systems and methods may facilitate provisioningaccounts and/or devices from the home network's existing provisioningsystems to the third-party video client provider's back-office systems,for example, in order to enable service for subscribers on the homenetwork. For example, the systems and methods may allow existing or newcustomers to receive media services on the third-party client software.In one embodiment, operations to provide such capabilities may includeintegrating with the home network's existing provisioning system,providing operations to indicate, via a flag identifying a customer asreceiving the service, and transmitting account, device and entitlementinformation to a third-party network's back office systems, for example,at one or more back office system computers. In some embodiments thedisclosed systems and methods may provide bidirectional, secure (forexample, encrypted) communication between existing diagnostics andmonitoring systems. Embodiments of the disclosure may provide anintegration platform that provides a cable operator's subscribers withthe ability to receive media subscription services from a standalone,self-contained third-party video client system on behalf of the homenetwork.

FIG. 4 depicts an environment 400 at which one or more devices operatein accordance with one or more example embodiments of the disclosure. Inparticular, FIG. 4 shows a diagram 400 representing a systemarchitecture showing an integration system on a home networkcommunicating with a third-party back office over the Internet. In anembodiment, a home network 405 can include an integration system 435. Inanother embodiment, the integration system 435 can communicate to athird-party back office 410, for example, through the Internet 415. Inone embodiment, the home network 405 can further include a customerpremise equipment including a third-party client application 420, athird-party firmware 422, and a client hardware, for example, a customerhardware such as a set-top box, a tablet computer, and/or a laptop, andthe like. In one embodiment, the integration system 435 and user devicessuch as customer premise equipment may be direct communication, forexample, via cable. In one embodiment, the integration system 435 mayfacilitate the transmission of data between various systems, such as theexisting cable system 430, billing systems 440, and/or third-party backoffice 410 computers and systems.

In one embodiment, the customer premise equipment can communicate to athird-party back office 410 through the Internet 415. In anotherembodiment, the integration system 435 of the home network 405 caninclude at least a reconciliation module 445. In another embodiment, thereconciliation module can serve to provide error handling functionality.In one embodiment, the integration system 435 can also include asecurity functionality module 450. In one embodiment, the integrationsystem 435 can include a metadata functionality module 455. In anotherembodiment, the metadata functionality module 455 can includefunctionality associated with one or more channel source IDs, video ondemand (VOD) asset IDs, pricing information, and the like. In oneembodiment, the integration system 435 can communicate with existingcable systems 430, which can in turn communicate with the customerpremise equipment. For example, the existing cable systems 430 cancommunicate with the customer premise equipment using the third-partyfirmware 422.

In another embodiment, the integration system 435 can communicate with abilling system 440. In an embodiment, the billing system 440 can includeone or more legacy billing systems. In one embodiment, the integrationsystem 435 may receive information from a given billing system 440 butmay not be able to necessarily push information back to the billingsystem 440.

In one embodiment, the integration system can provide the functionalityrepresented by the reconciliation functionality module 445. The securityfunctionality module 450, and/or the metadata functionality module 455,in order to integrate the client hardware 424 with a third-party backoffice services 410, for example, using a third-party client app 420that runs on the customer premise equipment using third-party firmware422. In one embodiment, the third-party back office 410 can providecontent including, for example, but not limited to, VOD content, lineardata, video, audio, and the like to the customer premise equipment onthe home network 405, using the third-party client application 420 inassociation with the third-party firmware 422. In another embodiment,the integration system 435 can communicate with both the third-partyback office 410 and the customer premise equipment in order to ensurethe continued functionality of the customer premise equipment runningthe content provided by the third-party back office 410 without serviceinterruptions. Additionally, the integration system 435 can providerequisite information to various subsystems of the home network,including existing cable systems 430, in order to both monitor thecustomer premise equipment running the third-party back office contentand to bill accordingly to one or more accounts associated with users ofthe home network in order to generate revenue from the presentation ofthe third-party content on the customer premise equipment of the homenetwork 405.

In some embodiments, the integration system 435 may be in communicationwith a billing system 440. The billing system 440 may include billinginformation associated with user devices on the home network. Thebilling system 440 may be also responsible for charging an accountassociated with a user device for providing data and/or media (forexample, video and/or audio, audiovisual hereinafter). In someembodiments, the integration system 404 may be in communication withexisting cable systems 430, such as an account management system (notshown). In one embodiment, the account management system may beresponsible for determining whether a user account associated with aparticular user device is authorized to view particular content. Forexample, the account management system may include informationspecifying that an account have a specific account ID number associatedwith a user device ID number, is authorized to view on demand content ofa particular TV channel. In one embodiment, the account managementsystem may include information data mapping account ID numbers to userdevices ID numbers. The account management system may maintain otherinformation associated with a level of authorization associated witheach account.

In some embodiments, a content management system (not shown) may be indirect communication with the integration system 435. In one embodiment,the content management system may be responsible for identifying whichcontent is available to a particular user. For example, the contentmanagement system may determine whether particular content is availablein a specific region where a user device is located. Similarly, thecontent management system may determine whether a particular user deviceis authorized to access specific content based on information receivedfrom the account management system.

In one embodiment, the integration system 435 may facilitatecommunications between the billing system 440, the account managementsystem, the content management system the cable management system anduser devices. In some embodiments, each of the above may belong toand/or be configured to operate on a different third-party network andmay only be enabled to communicate via particular protocols. In someembodiments, the integration system 435 may ensure that each systemreceives information required for operation of the respective system ina protocol supported by the respective system.

FIG. 5 shows a diagram 500 that represents an additional level offurther detail of the diagram 400, which described the systemarchitecture including the integration system in accordance with one ormore example embodiments of the disclosure. In one embodiment, theintegration system 505 can be generally similar to the integrationsystem 435, shown and described in connection with FIG. 4. In anotherembodiment, the operations performed by the integration system 505 mayalso be generally similar to the operations of the integration system435. In the depicted embodiment the integration system 505 can be incommunication with additional systems.

In particular, diagram 500 includes an integration system 505 thatcommunicates with a third-party video client 510 in association with athird-party video client provider system 512. In an embodiment, thethird-party video client can include a customer premise device. Inanother embodiment, the third-party video client provider system 512 canbe present in a third-party back office associated with a third-partynetwork. In one embodiment, the integration system 505 can provideservice assurance functionality to third-party video client 510 using aplurality of functional modules, including for example, but not limitedto, an Image result for a simple network management protocol (SNMP)manager 520, an SNMP polar/trap collector 522, in association with anSNMP data store 524 and an auto configuration server (ACS)/technicalreport (TR)-69 module 526. In one embodiment, the integration system 505can send a management information base (MIB) query to the SNMP manager522. The SNMP manager 520 can thereby send an SNMP get/walk request tothe third-party video client 510. In one embodiment, the integrationsystem 505 can send one or more alerts to the SNMP polar/trap collector522. In another embodiment, the third-party video client 510 cantransmit an SNMP trap to the SNMP polar/trap collector module 522. Inone embodiment, the SNMP polar/trap collector 522 can store one or moreSNMP alerts at an SNMP data store 524. In one embodiment, theintegration system 505 can transmit a TR-69 query to an ACS/TR-69 module526. In another embodiment, the ACS/TR-69 module 526 can send a TR-69query to a third-party video client 510. In this way, the integrationsystem 505 can provide service assurance functionality to thethird-party client 510.

In one embodiment, the integration system 505 can providebanner/notifications to a TV-CallerID 528 module. In another embodimentthe TV-CallerID module 528 can provide banner/notifications to thethird-party video client 510. In one embodiment, the TV-CallerID module528 can provide an application level functionality to the integrationsystem 505.

In one embodiment, the integration system 505 can transmit through theInternet 514 a VOD content check, an update and/or publish as neededrequests to a third-party video client provider system 512. In anotherembodiment, the integration system can transmit linear metadata channeland/or SDV push data over the Internet to the third-party video clientprovider system 512. In one embodiment, the integration system 505 canprovide an entitlements push over the Internet to the third-party videoclient provider system 512.

In one embodiment, the integration system 505 can send and receiveinformation associated with the device and account provisioning push orreceive data over the Internet to the third-party video client providersystem. In an embodiment, the integration system 505 can transmit dataindicative of on demand entitlements checking over the Internet to thethird-party video client provider system 512. In one embodiment, thethird-party video client provider system 512 can transmit networkmonitoring tools (NMS) diagnostic checks and/or data indicative thereof,through the Internet, to the integration system 505. In anotherembodiment, the integration system 505 can send and receiveticketing/e-bonding information to and from the third-party video clientprovider system 512.

In one embodiment, the third-party video client provider 510 can sendand receive information such as content from the third-party videoclient provider system 512 over the Internet 514. In one embodiment, anaccount data store module 540, a legacy billing system 542, and/or adevice data store 544 can be used in association with the integrationsystem 505 to provide account provisioning and/or entitlementfunctionality to the system shown in diagram 500. In one embodiment, theintegration system 505 can query account information from the accountdata store 540. In another embodiment, the integration system canmonitor provisioning events from the legacy billing system 542. In oneembodiment, the legacy billing system 542 can transmit accountprovisioning events to the account data store 540. In anotherembodiment, the legacy billing system 542 can provide data indicative ofdevice provisioning events to the device data store 544. In oneembodiment, the integration system 505 can query device information fromthe device data store 544.

In one embodiment, the integration system 505 can send and receiveinformation from a ticketing and/or care systems module 535 in order toprovide service assurance functionality to the third-party video clientand/or any other systems shown in diagram 500. In an embodiment, theintegration system 505 can transmit data to a metadata search engine anddata store module 560. In another embodiment, the metadata search engineand data store 560 in association with the legacy headend controller 562and/or a third-party linear metadata provider 564 can provide metadatafunctionality to the one or more systems shown and described inconnection with diagram 500, including the third-party video client 510.In one embodiment, the metadata search engine and data store 560 canretrieve channel lineup metadata from the legacy headend controller 562.In another embodiment, the metadata search engine and data store 560 cantransmit information to retrieve linear metadata from a third-partylinear metadata provider 564. In one embodiment, the metadata searchengine and data store 560 can retrieve VOD metadata, for example, bypulling for the VOD metadata from a video on demand catalog server 550.In one embodiment, the video on demand catalog server 550 in associationwith a video on demand storage area networks (SANs) and/or networkattached storage (NAS) 552 and/or a video on demand content provider 554can provide metadata (VOD) functionality to the one or more systemsshown in diagram 500 for the integration system 505 to operate with thethird-party video client 510 and/or the third-party video clientprovider system 512.

In one embodiment, the integration system 505 can listen for VOD catalogevents from the video on demand catalog server 550. In one embodiment,the video on demand catalog server 550 can store video files on a videoon demand SAN and/or NAS 552. In one embodiment, the video on demandcontent provider 554 can transmit new VOD content events such as, forexample, metadata and/or video files to the video on demand catalogserver 550. In one embodiment, the integration system 505 can retrieveSDV channel information from an SDV server 556.

In one embodiment, the third-party video client 510 can send and receiveinformation related to a standard SDV tune activity, for example, achannel change and/or a mini carousel-style activity associated with theSDV server and/or the third-party video client.

FIG. 6 is a flow chart illustrating example process 600 in accordancewith various embodiments of the present disclosure. The process 600 maybegin, at block 602, with receiving one or more account numbers eachbeing associated with an account. In one embodiment, integration systemmay receive one or more account numbers or IDs being associated with aparticular account for receiving audiovisual data, for example,audiovisual data associated with a cable channel, VOD content,broadcast, and the like. In one embodiment, integration system mayreceive the above indicated information from one or more computersassociated with the third-party network, for example, over the Internet.In one embodiment, the accounts associated with the one or more accountnumbers may have different authorizations associated with the particularaccount. In one embodiment, for example, the account may have a cablepackage that includes authorization to view a plurality of channels (forexample, 50, 100, 200 and/or the like), a particular category ofchannels, and/or any other such restriction. In another embodiment,other accounts may for example have a cable package that includesauthorization to view local channels (for example, 10, 15, 20 and/or thelike).

The process 600 may then continue, at block 604, with comparing the oneor more account numbers to a set of stored account numbers to determinewhether an account number is a valid account number. In one embodiment,the integration system can perform operations for comparing the receivedaccount numbers to the stored account numbers to determine ifinformation associated with the account is available and whether theaccount numbers are valid. In one embodiment, the integration system canuse one or more databases and/or storage systems to retrieve the storedaccount number for the comparison.

The process 600 may then continue, at block 606, with filtering accountnumbers that are determined to be invalid. In one embodiment, theintegration system may execute one or more operations to perform thefiltering. In one embodiment, the account numbers that are not found inthe stored account numbers during the comparison may be removed orfiltered.

The process 600 may then determine, at block 608, for each accountnumber, a type of the account associated with the account number. Forexample, an account may be determined to be a target account, a previousaccount, or a transfer account. In one embodiment, a target account canrefer to an account that is to be targeted for registration, payment,special content delivery, and the like. In one embodiment, a previousaccount can refer to an account that was previously held by one or moreusers for at least a period of time. In one embodiment, a transferaccount can refer to an account that was originally associated with adifferent network, but that has been registered and/or transferred tothe home network.

The process 600 may then continue, at block 610, with determining, foreach account number, whether the account number requires synchronizationbased on the type of each account number. In one embodiment, theintegration system may perform operations to determine that an accountrequires synchronization based on determining that the account is aprevious account or a target account. In one embodiment, thesynchronization may include the transmission of information between thehome network and the third-party network to provide the account withcurrent information. In some embodiments, the results may be cached toincrease the performance of the integration system, for example, thecommunications between the integration system and one or more computerson the home network and/or the third-party network.

The process 600 may then, at block 612, perform one or moresynchronization operations for each account that requiressynchronization. In one embodiment, the integration system may obtaindata associated with the account from the any or all of the subsystemsshown and described in connection with FIGS. 4-5 to update informationassociated with a given account. In one embodiment, for example, channelinformation, authorizations and permissions, billings, and the like canbe updated on the account. In one embodiment, the results may be cachedto enhance the performance. In one embodiment, the caching of the datacan be performed on any storage devices associated with the homenetwork.

The process 600 may then, at block 614, continue with retrieving, foreach account number, a third party provider account number that isassociated with the account number. In one embodiment, the integrationsystem may determine that a third-party provider account number isassociated with the account number based on information from athird-provider network's servers. In one embodiment, the account numbermay be associated with customer premise equipment deployed by the homenetwork at the client side (for example, set-top boxes, laptops,tablets, routers and/or the like).

In turn, the process 600 may retrieve, at block 616, for each accountnumber, a list of devices associated with the account number. In oneembodiment, the account number may be associated with a plurality ofset-top boxes in a particular household (for example, living roomset-top box, bedroom set-top box, and/or the like). The integrationsystem may determine a list of devices associated with the accountnumber and the household. The process 600 may continue, at block 618, toprovide data to one or more devices from the list of devices thatfacilitates provisioning of content to the one or more devices. In oneembodiment, the integration system can provide the data it retrievesfrom the third-party network (for example, based at least in part on oneor more operations described in connection with FIG. 6) to the one ormore devices (for example, set-top boxes, tablets, laptops, and thelike).

FIGS. 7-16 are flow charts illustrating various example procedures andoperations that may be completed in accordance with various embodimentsof the present disclosure. In particular, FIG. 7 shows an example flowdiagram 700, describing an example operation associated with aprovisioning and/or entitlement functionality of the integration system,in accordance with one or more example embodiments of the disclosure.

At block 702, a partner device (that is, a third-party device) can boot.In one embodiment the partner device can include a set top box, alaptop, a tablet, and/or any other suitable device, as describedthroughout this disclosure. In an embodiment, the partner device mayboot based on a user interaction, for example, a user plugging in thedevice. In another embodiment, the partner device may boot automaticallyas a result of being connected to a network, for example a home networkand/or a third-party cable network.

At block 704, the partner device can contact a partner back office. Asused herein a partner back office can be used interchangeably with athird-party network, and/or one or more third-party network computers.In an embodiment, the partner device can use a third-party clientapplication to communicate over a network, for example, the Internet, tocommunicate with the third-party back office. In one embodiment, thepartner device contacting the partner back office may include sendingand receiving data and/or metadata to facilitate a connection betweenthe partner device and the back office.

At block 706, the partner back office can request a device by a serialnumber. In one embodiment, the device requested by the partner backoffice can include the partner device that was booted at block 702. Inan embodiment, the partner back office requesting the device by theserial number can include at least one operation executed by one or morepartner back office computer(s) communicating over a network, forexample, the Internet, to an integration system located, for example, atthe home network.

At block 708, an application programming interface (API) gateway canreceive the request for the device by serial number from the partnerback office. In an embodiment, the API gateway can be running oroperational on the integration system on the home network. In anembodiment, the API gateway receiving the request for device by serialnumber may include the API gateway receiving data and/or metadataindicative of the request from the partner back office. In anembodiment, the request for device by serial number may include anauthorization token.

At block 710, the API gateway, for example, on the integration system ofthe home network can validate an authorization token associated with therequest for the device by serial number, received from the partner backoffice by the integration system operational on the home network. In anembodiment, the validation of the authorization token can comprisecomputational operations that determine whether the authorization tokenis valid or invalid, for example, based on running one or more tests onthe authorization token. In one embodiment, the authorization token caninclude an authorization 2.0 token. In one embodiment, OAuth 2.0 canrefer to an open standard for access delegation, which can be used as away for Internet users to grant websites or applications access to theirinformation on other websites but without giving them the passwords.

At block 712, the integration system and/or the API gateway candetermine whether or not the token validated at block 710 is valid orinvalid. In an embodiment, the determination can be based on theoperations described in connection with block 710. In an embodiment, ifit is determined that the token is invalid, then at block 714, theintegration system and/or the API gateway can generate a responseindicative of the token being invalid.

For example, as shown at block 714, the integration system and/or theAPI gateway can generate an HTTP 40 x response, indicative of the tokenbeing invalid, after which, at block 716, the flow diagram 700describing the operation of the provisioning and/or entitlementfunctionality associated with the integration system can end.

Alternatively, if at the result of the determination step at block 712of whether the token is invalid or valid, it is determined that thetoken is valid, then, at block 720, the integration system can performan account lookup using a serial number. In an embodiment, the accountlookup can be performed by the integration system, for example, bycontacting one or more search databases that store devices and/oraccounts by serial number or any other association. In an embodiment,the one or more account numbers can be transmitted to the integrationsystem, as shown at block 722, for the determination of the account byserial numbers.

At block 724, a determination can be made on whether the account hasbeen found based on the operation executed by the integration system atblock 720. The determination on whether the account has been found canbe made, for example, from a result of the search query based on one ormore account numbers, as described in connection with block 720.

If it is determined that the account is not found, then as shown atblock 730, the integration system and/or the API gateway can generate aresponse indicative of the failure to find the account. For example, asshown at block 730, the integration system and/or the API gateway cangenerate an Hypertext Transfer Protocol (HTTP) 404 response, indicativeof the failure to find the account. Further, at block 732, the flowdiagram 700 that describes an aspect of the functionality ofprovisioning and/or entitlement functionality can come to an end.

Alternatively, if the result of the account search, as described inconnection with block 724 results in the account being found, then atblock 726, the integration system and/or the API gateway can return adevice information to one or more partner devices, for example, one ormore partner devices running on a third-party network. For example, thepartner device as described in connection with block 702, after whichthe operations associated with the flow diagram for the provisioningand/or entitlement functionality of the integration system can come toan end at block 728.

FIG. 8 shows an example flow diagram 800 describing an example operationassociated with a metadata and/or service assurance functionality of theintegration system, in accordance with one or more example embodimentsof the disclosure.

At block 802, a middleware batch process can start on the integrationsystem. In one embodiment, such a middleware batch process can include aprocess that executes cyclically. For example, once every 30 minutes orone hour (or more or less), in order to, for example, synchronize one ormore legacy systems. For example, one or more legacy billing systems andthe like, with one or more applications running on, for example, acustomer premise equipment having third-party client applicationsinstalled.

At block 804, the integration system can execute one or more operationsidentify a cable headend controller. In an embodiment there can be manycable headend controllers, for example, many cable headend controllersassociated with different regions or associated with differentgeographic regions of a network. In an embodiment, the cable andcontroller can be centralized in a data center. In one embodiment, thecable headend controller can include a server.

At block 806, the integration system can run one or more operations thatretrieve a service tag associated with a cable headend controller. In anembodiment, the service tag associated with a given cable headendcontroller can serve to identify the cable headend controller.

At block 810, the integration system can run one or more operations toidentify the service tag in order to run further operations associatedwith each headend controller having the given service tag. For example,at block 812, the integration system can execute one or more operationsto retrieve one or more source IDS associated with the service tagand/or the cable headend controller.

At block 814, the integration system can execute one or more operationsto look up a partner source ID associated with a third-party backoffice, for example, using the source IDs retrieved at block 812. In oneembodiment, the operations to look up the partner source ID using theretrieved source IDs from block 812 can be determined based in part on asource ID to partner source ID mapping, as shown at block 816. In anembodiment, the source ID to partner source ID mapping can include atable and/or a chart that maps a source ID on the home network to athird-party source ID on the third-party network. For example, thesource ID to partner source ID mapping can include an indication that afirst source on a first frequency corresponds to a first channel on thehome network, which can be mapped to a second source on a secondfrequency corresponding to the same channel on the third-party network.

At block 818, the integration system can perform operations to determinewhether the result of the lookup of the partner source ID by the sourceIDs retrieved at block 812 and executed at block 814 exist or do notexist. If it is determined at block 818 that the mapping does not exist,then at block 820 an error can be logged, for example, in one or moredatabases associated with the integration system and the process flowcan continue to block 830.

Alternatively, if the determination is made at block 818 that themapping does exist, then the operations associated with the flow diagramcontinue to block 822, where it is determined, by the integrationsystem, whether the cable headend controller identified by the source IDand/or the service tag, is partner compatible enabled or not. If it isdetermined at block 822 that the cable headend controller associatedwith the source ID and/or the service tag is not partner compatibleenabled, then the operations associated with the flow diagram cancontinue back to block 810, where a next service tag is determined basedon the retrieved service tags found at block 806.

If, on the other hand, the cable headend controller associated with thesource ID and/or the service tag is determined to be partner compatibleenabled at block 822, then the operations associated with the flowdiagram continue to block 824 where each subscription package associatedwith the service tag is determined. Thereafter, the operationsassociated with the flow diagram continue to block 826, wherein for eachsubscription package associated with the service tag determined at block824, a third-party partner device and/or application associated with thethird-party back office can be created and/or updated, for example, withchannel information or any other associated information, for example,updated source mismatch information or reconciliation information.

At block 828, the operations associated with the flow diagram determinewhether there are any other subscription packages available for analysisand updating. If the result is that it is indeed the last subscriptionpackage for creation and/or updating of the third-party partner with thechannel information at block 828, then the operations associated withthe flow diagram continue to block 830, where it is determined whetherthe service tag being considered for the operations of the previousblocks is indeed a last service tag.

If the result of the determination at block 830 is that the service tagis the last service tag, then the operation continues to block 832,where it is determined whether the cable headend controller is the lastheadend. If it is determined that the cable headend controller is thelast headend, then at block 834 the operations associated with the flowdiagram describing the example operation associated with the metadataand/or service assurance functionality of the integration system come toan end.

If, on the other hand, at block 832 it is determined that there are morecable headend controllers for analysis, then the operations continue toblock 804, where the process continues accordingly, as described abovefor another cable headend controller. In this way, the middleware batchprocess, shown and described in connection with diagram 800, candetermine a mapping between cable headend controller systems on the homenetwork and one or more third-party partner source ID devices and/orapplications associated with the third-party back office.

FIG. 9 shows an example flow diagram 900 that describes an exampleoperation associated with a metadata functionality of the integrationsystem, in accordance with one or more example embodiments of thedisclosure. In one embodiment, the operations associated with the flow,as shown in diagram 900, can describe operations that address asituation where a third-party back office can operate on a differentlevel of granularity with respect to account provisioning and/ormetadata, as compared with a home network. For example, the home networkmay be configured to operate on a headend controller level associatedwith one or more markets on the home network or addressed by the homenetwork, whereas the third-party back office may have one or moreapplications that operate on a geographic region level to service theirrespective network.

At block 902, a middleware batch process can initiate or start. In anembodiment, the middleware batch process can execute operations toaddress the situation described above. In an example embodiment, themiddleware batch process can run periodically, for example, once everyhour and/or half hour, in order to continuously monitor and updatechannel mappings between the home network and the third-party network.

At block 904, each cable headend controller can be identified for theperforming of one or more operations described below. In an embodiment,each cable headend controller can be associated with a different marketaddressed by the home network. In an embodiment, one or more of thecable headend controllers can include legacy cable headend controllersand/or associated legacy peripheral devices.

At block 906, the integration system can perform operations to derive aregion name for a given cable headend controller. In an embodiment, thederivation of the region name can be determined based on any number ofassociated factors. For example, an IP address associated with the cableheadend controller, a Global Positioning System (GPS) determinedlocation of a given cable headend controller, and/or any otheridentifying information.

At block 908, the integration system can execute operations to store theregion information locally that is on one or more storage mediaassociated with the integration system and/or one or more databasesassociated with the integration system.

At block 910, the integration system can execute operations to determinefor each channel map associated with the home network to performoperations described in connection with block 912, that is send regionand/or channel maps to a third-party partner back office.

In other words, at blocks 910 and 912, the integration system candetermine a channel map that maps the stored regions of block 908 withinternal channel maps based on markets associated with the home networkfor transmission to the third-party back office. In one embodiment, oneor more region names, as shown at block 914, can be used in associationwith the transmission of the region and/or channel map to thethird-party partner back office, as shown at block 912. In anembodiment, the region/channel map can include a table that maps a givenregion associated with the third-party back office with a channel mapthat is based on one or more markets associated with the home network.

At block 916, the integration system can perform operations to determinewhether the channel map is the last channel map being considered for agiven cable headend controller. If it is determined as a result of theoperations executed at block 916, that it is not the last channel map,then the flow operations can continue to block 910, where the nextchannel map is considered.

If, on the other hand, the operation is executed to determine that thechannel map is a last channel map at block 916, then the flow ofoperations continues to block 918, where the integration system candetermine whether the cable headend controller is the last controllerbeing considered by the middleware batch process.

If it is determined, as a result of the operations executed at block918, that the cable headend controller is not the last cable headendcontroller considered by the middleware batch process, then theoperations can continue to block 904, where a next cable headendcontroller is considered. If, on the other hand, it is determined as aresult of the operations being executed at block 918 that the headendcontroller is indeed the last controller, then the operations cancontinue to block 920, where the example operations associated with theflow diagram 900 for the metadata functionality of the integrationsystem come to an end.

FIG. 10 shows an example flow diagram 1000, describing example operationassociated with a provisioning and/or entitlements functionality of theintegration system, in accordance with one or more example embodimentsof the disclosure. In one embodiment, the operations can begin at block1002, where a partner-enabled device can be determined to have beenprovisioned. In an embodiment, the partner-enabled device can include aset top box. For example, a set top box associated with a home network.

As such, the operations can continue to block 1004, where theintegration system can obtain an account and/or account informationassociated with the partner-enabled device that has been provisioned inaccordance with or as described at block 1002. For example, in anembodiment, the integration can execute operations to receive and/ortransmit data to the partner-enabled device to obtain the accountinformation associated with the account.

At block 1006, the integration system can execute operations to obtain achannel map associated with the partner-enabled device that has beenprovisioned as shown at block 1002, and for which an account has beenobtained, as shown at block 1004. In an embodiment, the channel map canbe obtained based, at least in part, on data that is transmitted and/orreceived by the integration system from communications between theintegration system on the home network and the partner-enabled device.

In an embodiment, at block 1008, the integration system can executeoperations to obtain one or more packages. For example, channel packagesand/or cable network packages associated with the partner-enabled deviceshown at block 1002 and/or the account as obtained at block 1004.

At block 1010, one or more feature entitlements can be obtained for thepartner-enabled device, as shown at block 1002, for an account asdescribed at block 1004.

At block 1012, a credit limit can be obtained for the partner-enableddevice and/or the account as determined at block 1004. In oneembodiment, the credit limit may be associated with the amount ofcredits available to a given user associated with an account. Forexample, the amount of credits that are allowed to watch a particularprogram by a given user associated with the account. In an embodiment,the credit limit may be associated with a monetary value paid by theuser to obtain such a credit. In an embodiment, the credit limit may betransmitted from the partner-enabled device over the Internet to theintegration system.

At block 1014, the integration system can create and/or generate one ormore region names. In an embodiment, the region names can be associatedwith the regions that are addressed by the third-party back officenetwork. In one embodiment, the creation of the region names can beassociated with or based at least in part on the channel map. Forexample, the channel map obtained as described in connection with block1006.

At block 1016, the integration system can execute operations to createan account. For example, an account that is different than the accountobtained in step 1004, but based on the information gathered from theoperations in steps 1004, 1006, 1008, 1010, 1012, and/or 1014.

In an embodiment, the account created in step 1016 can be indicative ofa mapping of the account of the third-party back office network, with anaccount on the home network. In other words, there can be a one to onemapping of accounts between the two networks, that is the back officethird-party network, and the home network. At block 1018, the flowdiagram for the example operations associated with the provisioningand/or entitlements fine functionality of the integration system cancome to an end.

FIG. 11 shows an example flow diagram 1100, describing example operationassociated with a metadata and/or provisioning functionality of theintegration system, in accordance with one or more example embodimentsof the disclosure. In an embodiment, the operations described in theflow diagram 1100 can facilitate the embodiment of one or more rulesassociated with content provided by the third-party backend network. Therules indicative of, for example, account permissions to be determinedin associated with the provided content. In an embodiment, the rules canbe enforced on the home network, though the content is provided by athird-party network.

At block 1105, a middleware batch process can start. In an embodiment,the middleware batch process can be executed periodically, for example,once every half hour or once every hour.

At block 1110, the integration system can execute our operations toretrieve one or more categories from a metadata repository. In anembodiment, the metadata repository can be stored on a storage deviceassociated with the integration system. In an embodiment, the categoriescan correspond to different types of content that are associated withthe content provided by a third-party backend office network. In anembodiment, the categories can correspond to the VOD package categoryassociated with the content.

At block 1112, the integration system can perform operations on eachcategory of the retrieved categories, shown in connection with block1110. At block 1114, the integration system can perform operations tolook up one or more category rules. In an embodiment, the one or morecategory rules can be determined based on category rules input (block1116). In an embodiment, the category rules can be stored on a storagedevice associated with or in communication with the integration system.In an embodiment, the category rules can be rules that are associatedwith the home network.

In an embodiment, the category rules can include rules associated withauthorization, content, and/or entitlement for a given account. Forexample, one category rule may specific that a given content is notsuitable for viewing by a minor. Another category rule may indicate thatthe content is not presentable due to a lack of authorization, forexample, because of copyrights.

At block 1118, the middleware batch process being executed by theintegration system can consider each rule and perform operations to bediscussed below for each rule. For example, at block 1120, theintegration system can execute operations to add a given package, forexample a cable package, to an asset package list. In an embodiment, theasset package list could then be used by the integration system todetermine which account of one or more accounts being used on the homenetwork can access the asset packages described in the asset packagelist in accordance with a given rule identified at block 1118.

At block 1122, the integration system can execute operations to add agiven region to an asset region list. In an embodiment, the asset regionlist can include a list that is indicative of a region in which an assetis accessible and/or available for customers on the home network.

At block 1128, the integration system can execute operations todetermine whether the package assets and/or category is associated witha transactional VOD. In an embodiment, such a transactional VOD mayinclude a pay-per-view (PPV) content.

If it is determined at block 1128 that a transactional VOD exists, thenthe operations continue to block 1130, where the integration system canexecute operations to set a transactional VOD flag. In an embodiment,the transactional VOD flag can provide the integration system with themethod to perform additional functionality to address the transactionalVOD nature of the category package and/or asset.

Furthermore, the operations associated with the flow diagram cancontinue thereafter to block 1132, where the integration system canexecute operations to update a package workflow status in accordancewith the setting of the transactional VOD flag, as shown at block 1130.

Alternatively, if at block 1128 it is determined that a transactionalVOD is not present, then the flow of operations can continue also toblock 1132, where the integration system can execute one or moreoperations to update a package workflow status to indicate that thepackage category and/or asset is not a transactional VOD in nature.

At this point, the operational flow can continue to block 1134, wherethe integration system can execute operations to determine whether therule being processed is a last rule for the category rules determined atblocks 1112 and/or blocks 1114, in association with block 1116.

If it is not determined to be the last rule at block 1134, then theoperational flow continues back to block 1118 and the ensuing operationscontinue accordingly. If, on the other hand, the integration systemdetermines that it is indeed a last rule at block 1134, then theoperational flow continues to block 1136, where the integration systemexecutes one or more operations to determine whether the category is alast category.

If it is determined as a result of the operations of block 1136 that thecategory is not a last category, then the operations can continue toblock 1112, where the integration system can determine the next categoryand can perform the ensuing operations accordingly. If, on the otherhand, the integration system determines at block 1136 that the categoryis indeed the last category, then the operations continue to block 1138,where the operational flow that describes the example metadata and/orprovisioning functionality associated with the operations in diagram1100 come to an end.

FIG. 12 shows an example flow diagram 1200, describing an exampleoperation associated with a provisioning functionality of theintegration system, in accordance with one or more example embodimentsof the disclosure. At block 1202, a reset PIN can be initiated by theintegration system. In one embodiment, the PIN can be initiated toperform a parental lock and/or to prevent the purchase of content by oneor more users, for examples, users on an account on the home network.

Accordingly, at block 1204, the integration system can executeoperations such that a billing system associated with the integrationsystem on the home network can initiate a parental and/or a purchase PINreset. In an embodiment, the integration system can send a datacommunication to the billing system, such that the billing system caninitiate the parental and/or purchase PIN reset. Furthermore, theintegration system can receive the request from the billing systemaccordingly.

At block 1206, the integration system can execute operations such thatmiddleware running on the integration system can log such a request thatis the request by the billing system to initiate a parental or purchasePIN reset, as shown at block 1204.

At block 1208, the integration system can execute operations to enqueuethe reset request. In an embodiment, the enqueueing of the reset requestby the integration system can serve to store the reset request for atime on which the integration system is not busy communicating with thethird-party backend office computers. For example, if the integrationsystem is busy receiving more critical data, the reset request can beenqueued for transmission at a future time to one or more computersassociated with the third-party backend office network.

At block 1210, the integration system can execute operations to transmitthe PIN reset request to the third-party partner network and/orcomputers associated with the third-party backend office and/or network.

At block 1212, the integration system can execute operations todetermine whether the PIN reset was successful. That is, the reset wassuccessful, for example, on the third-party partner network. In oneembodiment, the integration system can make the determination of whetherthe PIN reset was successful or not based on information received backfrom the third-party network.

If, as a result of the operations executed at block 1212, it isdetermined by the integration system that the PIN reset was successful,then at block 1214 the integration system can log the status of the PINreset.

Further, at block 1220, the operational flow describing an exampleprovisioning functionality of the integration system can come to an end.

Alternatively, if at block 1212 the integration system determines thatthe PIN reset was not successful, for example based on informationretrieved from the third-party partner network and/or one or morecomputer systems on the third-party back office network, then at block1216 the integration system can log an error accordingly. Furthermore,the operational flow can then proceed to block 1218, where theprovisioning functionality provided by the operations associated withthe flow diagram 1200 can come to an end.

FIG. 13 shows an example flow diagram 1300, describing example operationassociated with the metadata functionality of the integration system, inaccordance with one or more example embodiments of the disclosure. In anembodiment, the operations associated with the flow of the diagram 1300represent operations for cycling through legacy headend controllers, forexample legacy headend controllers in a given market and/or region anddetermining a means of communication with the legacy headendcontrollers, for example, over a web service.

At block 1305, a middleware PPV batch process an initiate. In oneembodiment, the middleware PPV batch process can include variousoperations for each headend controller to be performed periodically, forexample, once every half an hour to once every hour or the like.

At block 1310, each headend controller can be identified such that thefollowing operations can be conducted on each headend controller. Atblock 1312, the integration system can execute operations to determinewhether the headend controller has a web service. In an embodiment, forexample, the integration system can interrogate the headend controllerwith data and requests to determine whether the headend controller canoperate using a web service or has a web service.

If at the result of the operations conducted at block 1312 to determinewhether the headend controller has a web service, it is determined thatthe headend controller does not have a web service capability, then atblock 1314 the integration system can execute operations to retrieve oneor more headend controller files. For example, one or more legacyheadend controller files (1316). If, on the other hand, the integrationsystem determines that the controller has web service capability atblock 1312, then the operational flow can continue to block 1320, wherethe integration system can invoke a PPV web service. In one embodiment,the PPV web service can be specific to PPV content.

Further, the operational flow from either scenarios represented atblocks 1314 and/or blocks 1320 can proceed to the operation shown atblock 1322. In particular, at block 1322, the integration system canexecute operations to generate a middleware PPV file. In one embodiment,the generation of the middleware PPV file can be produced based, atleast in part, on either one or more legacy headend controller datafiles or a PPV web service, as previously described.

Further, the operational flow can continue to block 1324, where theintegration system can execute operations to retrieve additional PPVdata from a metadata repository. For example, the additional PPV data,as shown at block 1326, can be obtained from one or more storage devicesassociated with the integration system or a database associated with theintegration system.

At block 1328, the integration system can enrich the controller PPV datawith metadata. In one embodiment, the metadata can comprise or includedata associated with the PPV content.

At block 1330, the integration system can write a PPV JavaScript ObjectNotation n (JSON) file based on the proceeding operations describedabove. In one embodiment the JSON file can indicate to the third-partyback-end office network and/or computers what differences may existbetween, for example, the headend controllers on the home network andthe systems of the third-party network computers, set top boxes, andother such devices, including controllers.

At block 1332, the integration system can execute computer operations todetermine whether the given headend controller under analysis is thelast headend controller, for example, the last headend controller of agiven region or market.

If it is determined at block 1332 that the headend controller underanalysis is not the last headend controller, then the operational flowcan resume at block 1310 (and associated operations ensuing therefrom).If, on the other hand, the integration system determines at block 1332that the headend controller is indeed the last headend controller, forexample, for a given region and/or market, then the operational flow cancontinue to block 1334, where the flow represented in diagram 1300indicative of the metadata functionality can be brought to an end.

FIG. 14 shows an example flow diagram 1400, describing example operationassociated with a metadata functionality of the integration system, inaccordance with one or more example embodiments of the disclosure. In anembodiment, the operational flow 1400 describes one process for handlingPPV legacy sessions. For example, the operational flow 1400, can serveto communicate file changes and/or format changes for PPV contentbetween the home network, computers, and the third-party back officecomputers and/or servers.

At block 1405, a middleware integration system can check a messagequeue. In an embodiment, the message queue can include various messagesindicative of a given PPV job. In an embodiment, each PPV job can beassociated with a PPV content, for example, on the third-party networkfor presentation on a device associated with the home network.

At block 1410, the integration system can identify each PPV job messagethat is from the message queue identified in or checked at block 1405.

At block 1412, the integration system can execute operations to read theJSON PPV file associated with the PPV job message at block 1410. Inparticular, the integration system can obtain the JSON PPV file, asshown at block 1415, from one or more storage devices associated withthe integration system.

At block 1420, the integration system can execute operations to validatea checksum on the JSON PPV file read at block 1412. In an embodiment,the checksum can be indicative of a change in the PPV format associatedwith the PPV file, for example, a change in a catalog for PPV content.

At block 1422, the integration system can execute one or more operationsto determine whether the checksum validated at block 1420 is a correctchecksum or an incorrect checksum. If it is determined at block 1422that the checksum is correct, then at block 1424 the integration systemcan execute operations to send the PPV event data to, for example, athird-party network computer. If, on the other hand, the integrationsystem at block 1422 determines that the checksum is not correct, thenat block 1426 the integration system continues to the operational flowdetermined by block 1426.

Further, after sending the PPV event data file at block 1424, theoperational flow can also continue to block 1426, where the integrationsystem can execute operations to determine whether the PPV job messageunder consideration is indeed the last PPV job message, determined from,for example, the message queue.

If it is determined that the PPV job message is not the last PPV jobmessage, then the operational flow reverts to the operations describedat block 1410 and the ensuing operations therefrom. If, on the otherhand, it is determined by the integration system at block 1426 that thePPV job message is indeed the last PPV job message, then the operationalflow continues to block 1428, wherein the metadata functionalityrepresented by the operational flow diagram 1400 is brought to an end.

FIG. 15 shows an example flow diagram 1500, described in exampleoperation associated with a service assurance functionality of theintegration system, in accordance with one or more example embodimentsof the disclosure. In an embodiment, the operations described and shownin connection with diagram 1500 can provide a method for serviceassurance for customers utilizing devices and/or computers on athird-party network while being customers of a home network.

At block 1504, a support personnel can activate a user interface. In anembodiment, the support personnel can include an employee, for example,of the home network that is using a user interface associated with athird-party device or a user interface designed by the third-partynetwork that may be running on a device associated with the homenetwork. See, for example, FIG. 4 and associated description.

At block 1506, middleware can authenticate a request generated, forexample, by the support personnel through the user interface at block1504. For example, in an embodiment, the authentication of the requestmay include the entry of a password and/or a PIN by the supportpersonnel into the user interface for authentication by the middleware.

At block 1508, the integration system can execute operations to retrievesite, account, and device details from a database. In an embodiment, thesite, account, and device details (1510) can be determined from adatabase associated with the integration system and/or a storage deviceassociated with the integration system.

At block 1510, the integration system can execute operations to retrieveaccount data from billing. In an embodiment, the billing account data(1512) can be determined from a billing system and/or device associatedwith the integration system.

At block 1514, the integration system can execute operation to aggregateresponse data. In an embodiment, the aggregation can include aggregatingthe site, account and/or device details gathered from the database asshown and described in connection with block 1508 and block 1510, withthe billing account data retrieved at block 1510 and bock 1512.

In one embodiment, at block 1516, the integration system can executeoperations to display account data. For example, in an embodiment, theintegration system can display the account data at the user interfacethat is being used by the support personnel.

At block 1518, the integration system can execute operations to identifya given account device in order to run further operations to bedescribed below in association with the account device. In oneembodiment, the account device can include set tops, tablet, and/orother devices associated with the home network.

At block 1520, the integration system can execute operations to map anSNMP get to an HTTP request. In an embodiment, the operations executedat block 1520 can serve to map legacy devices using SNMP protocols tomore contemporary devices using HTTP protocols.

At block 1522, the integration system can execute operations to issueHTTP wrapped SNMP get request and transmit this to a partner device. Forexample, a partner device associated with the third-party network. Inone embodiment, the HTTP wrapped SNMP get request may need to betransmitted to the third-party network in order for one or morecomputers of the third-party network to be able to interpret the dataoriginating from the legacy devices supported on the home network.

In another embodiment, as shown at block 1524, the operations of block1522 may utilize one or more of a site ID an object ID (OID), a serialnumber, and/or a timeout associated with an account device on the homenetwork.

At block 1526, the integration system can execute operations to map aTR-69 request to an HTTP request. Again, a TR-69 request may beassociated with one or more legacy account devices on the home network,whereas the HTTP request can be associated with contemporary protocolsand/or devices on both the home network and/or the third-party network.Accordingly, the operations described at block 1526 can serve togenerate a mapping between the two protocols.

At block 1528, the integration system can execute operations to issueand/or transmit an HTTP wrapped SNMP get request based on the operationsin the preceding 1526 block to a third-party partner network.

In one embodiment, as shown at block 1530, a serial number, a parameterlist, and/or a timeout parameter associated with an account device canbe used in order to generate and/or transmit or issue the HTTP wrappedSNMP get request, as described in connection with block 1528.

At block 1532, the integration system can execute operations to displaydevice data indicative of one or more of the previous operations 1520,1522, 1526, and/or 1528. In an embodiment, the operation of block 1532displaying device data can be performed on a user interface forpresentation to a support personnel.

At block 1534, the integration system can execute operations todetermine whether the account device under analysis is the last deviceon a given account associated with the service session initiated by thesupport personnel.

If, as a result of the executed operations at block 1534, it isdetermined that there are more devices on the account then theoperational flow reverts to block 1518, where another account device isidentified for performing the operations ensuing from block 1518.

On the other hand, if at block 1534 the integration system determinesthat the device under analysis is the last device associated with theaccount, then the operational flow proceeds from block 1534 to block1536, where the operational flow is brought to an end.

FIG. 16 shows an example flow diagram 1600, describing an exampleoperation associated with the service assurance functionality of theintegration system, in accordance with one or more example embodimentsof the disclosure. In an embodiment, the operational flow 1600 can alsoserve to allow support personnel to monitor various issues in theintegration between the home network and the third-party network as theymay arise.

At block 1602, support personnel can activate a user interface modemhistory function. In one embodiment, the support personnel can includeemployees of the home network. In another embodiment, the user interfacecan be a third-party user interface that can be running on a deviceassociated with the home network, for example, a modem device and/or aset top device running on the home network.

In another embodiment, the history function described at block 1602 cantrack the historical performance associated with the given device on thehome network under analysis.

At block 1604, a middleware can authenticate the request resulting fromthe operations described at block 1602. In one embodiment, theauthentication of the request can include an operation to obtain apassword by the support personnel, for example, at the user interface ona given device for authentication.

At block 1606, the integration system can execute operations todetermine whether a serial number is provided as a part of the requestgenerated by the support personnel, for example, through the userinterface.

If it is determined, as a result of the operations executed at block1606 that a serial number is not provided, then at block 1612 theintegration system can perform one or more operations to look up thedevices by, for example, other identifying information. For example, anIP address, a region location, a geographic location, and/or anotherform of identification.

If, on the other hand, the operations executed at block 1606 indicatethat a serial number is provided, then at block 1608 the integrationsystem can execute operations to further retrieve a Media Access Control(MAC) address from a middleware database associated with the integrationsystem. In an embodiment, the MAC address (1610) can be stored at themiddleware database, for example, on one or more storage devicesassociated with the integration system.

The flow can proceed from either block 1606 or block 1612, as the casemay be, to block 1614, where the integration system can identify a givendevice for further operations to be performed thereon.

At block 1616, the integration system can execute operations to issue amodem history request to a site system. In an embodiment, the sitesystem can be a part of either the home network or the third-partynetwork. In one embodiment, the modem history request can include arequest to receive historical information associated with theperformance of the device under analysis at block 1614.

At block 1618, the integration system can execute operations todetermine whether the device under analysis is the last device in a listof devices stored in the integration system for analysis. If it isdetermined that there are additional devices, then the operational flowcan continue from block 1618 back to block 1614 for the next device toanalyze.

If, on the other hand, the operations executed at blocks 1618 by theintegration system determine that the device under analysis is the lastdevice in a list referenced by the integration system, then theoperational flow can continue to block 1620, at which the integrationsystem can aggregate modem history data.

In one embodiment, the aggregation of modem history data by theintegration system at block 1620 can include an aggregation of dataassociated with one or more subsystems of the device and/or otherperipheral devices associated with a given device.

At block 1622, the integration system can display the modem history datadetermined from the preceding steps. For example, the integration systemcan display the modem history data at a user interface for presentationto the support personnel. In another embodiment, the user interface canbe a user interface generated at least in part by a third-party computerrunning on a third-party network. At this point, the operational flowcan continue to block 1624, where the operational diagram for thefunctionality of service assurance functionality represented by thediagram 1600 can come to an end.

Although an example processing system has been described above,embodiments of the subject matter and the functional operationsdescribed herein can be implemented in other types of digital electroniccircuitry, or in computer software, firmware, or hardware, including thestructures disclosed in this specification and their structuralequivalents, or in combinations of one or more of them.

Embodiments of the subject matter and the operations described hereincan be implemented in digital electronic circuitry, or in computersoftware, firmware, or hardware, including the structures disclosed inthis specification and their structural equivalents, or in combinationsof one or more of them. Embodiments of the subject matter describedherein can be implemented as one or more computer programs, i.e., one ormore modules of computer program instructions, encoded on computerstorage medium for execution by, or to control the operation of,information/data processing apparatus. Alternatively, or in addition,the program instructions can be encoded on an artificially-generatedpropagated signal, for example, a machine-generated electrical, optical,or electromagnetic signal, which is generated to encode information/datafor transmission to suitable receiver apparatus for execution by aninformation/data processing apparatus. A computer storage medium can be,or be included in, a computer-readable storage device, acomputer-readable storage substrate, a random or serial access memoryarray or device, or a combination of one or more of them. Moreover,while a computer storage medium is not a propagated signal, a computerstorage medium can be a source or destination of computer programinstructions encoded in an artificially-generated propagated signal. Thecomputer storage medium can also be, or be included in, one or moreseparate physical components or media (for example, multiple CDs, disks,or other storage devices).

The operations described herein can be implemented as operationsperformed by an information/data processing apparatus oninformation/data stored on one or more computer-readable storage devicesor received from other sources.

The term “data processing apparatus” encompasses all kinds of apparatus,devices, and machines for processing data, including by way of example aprogrammable processor, a computer, a system on a chip, or multipleones, or combinations, of the foregoing. The apparatus can includespecial purpose logic circuitry, for example, an FPGA (fieldprogrammable gate array) or an ASIC (application-specific integratedcircuit). The apparatus can also include, in addition to hardware, codethat creates an execution environment for the computer program inquestion, for example, code that constitutes processor firmware, aprotocol stack, a database management system, an operating system, across-platform runtime environment, a virtual machine, or a combinationof one or more of them. The apparatus and execution environment canrealize various different computing model infrastructures, such as webservices, distributed computing and grid computing infrastructures.

A computer program (also known as a program, software, softwareapplication, script, or code) can be written in any form of programminglanguage, including compiled or interpreted languages, declarative orprocedural languages, and it can be deployed in any form, including as astand-alone program or as a module, component, subroutine, object, orother unit suitable for use in a computing environment. A computerprogram may, but need not, correspond to a file in a file system. Aprogram can be stored in a portion of a file that holds other programsor information/data (for example, one or more scripts stored in a markuplanguage document), in a single file dedicated to the program inquestion, or in multiple coordinated files (for example, files thatstore one or more modules, sub-programs, or portions of code). Acomputer program can be deployed to be executed on one computer or onmultiple computers that are located at one site or distributed acrossmultiple sites and interconnected by a communication network.

The processes and logic flows described herein can be performed by oneor more programmable processors executing one or more computer programsto perform actions by operating on input information/data and generatingoutput. Processors suitable for the execution of a computer programinclude, by way of example, both general and special purposemicroprocessors, and any one or more processors of any kind of digitalcomputer. Generally, a processor will receive instructions andinformation/data from a read-only memory or a random access memory orboth. The essential elements of a computer are a processor forperforming actions in accordance with instructions and one or morememory devices for storing instructions and data. Generally, a computerwill also include, or be operatively coupled to receive information/datafrom or transfer information/data to, or both, one or more mass storagedevices for storing data, for example, magnetic, magneto-optical disks,or optical disks. However, a computer need not have such devices.Devices suitable for storing computer program instructions andinformation/data include all forms of non-volatile memory, media andmemory devices, including by way of example semiconductor memorydevices, for example, EPROM, EEPROM, and flash memory devices; magneticdisks, for example, internal hard disks or removable disks;magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor andthe memory can be supplemented by, or incorporated in, special purposelogic circuitry.

To provide for interaction with a user, embodiments of the subjectmatter described herein can be implemented on a computer having adisplay device, for example, a CRT (cathode ray tube) or LCD (liquidcrystal display) monitor, for displaying information/data to the userand a keyboard and a pointing device, for example, a mouse or atrackball, by which the user can provide input to the computer. Otherkinds of devices can be used to provide for interaction with a user aswell; for example, feedback provided to the user can be any form ofsensory feedback, for example, visual feedback, auditory feedback, ortactile feedback; and input from the user can be received in any form,including acoustic, speech, or tactile input. In addition, a computercan interact with a user by sending documents to and receiving documentsfrom a device that is used by the user; for example, by sending webpages to a web browser on a user's client device in response to requestsreceived from the web browser.

Embodiments of the subject matter described herein can be implemented ina computing system that includes a back-end component, for example, asan information/data server, or that includes a middleware component, forexample, an application server, or that includes a front-end component,for example, a client computer having a graphical user interface or aweb browser through which a user can interact with an embodiment of thesubject matter described herein, or any combination of one or more suchback-end, middleware, or front-end components. The components of thesystem can be interconnected by any form or medium of digitalinformation/data communication, for example, a communication network.Examples of communication networks include a local area network (“LAN”)and a wide area network (“WAN”), an inter-network (for example, theInternet), and peer-to-peer networks (for example, ad hoc peer-to-peernetworks).

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other. In someembodiments, a server transmits information/data (for example, an HTMLpage) to a client device (for example, for purposes of displayinginformation/data to and receiving user input from a user interactingwith the client device). Information/data generated at the client device(for example, a result of the user interaction) can be received from theclient device at the server.

While this specification contains many specific embodiment details,these should not be construed as limitations on the scope of anyembodiment or of what may be claimed, but rather as descriptions offeatures specific to particular embodiments. Certain features that aredescribed herein in the context of separate embodiments can also beimplemented in combination in a single embodiment. Conversely, variousfeatures that are described in the context of a single embodiment canalso be implemented in multiple embodiments separately or in anysuitable subcombination. Moreover, although features may be describedabove as acting in certain combinations and even initially claimed assuch, one or more features from a claimed combination can in some casesbe excised from the combination, and the claimed combination may bedirected to a subcombination or variation of a subcombination.

Similarly, while operations are depicted in the drawings in a particularorder, this should not be understood as requiring that such operationsbe performed in the particular order shown or in sequential order, orthat all illustrated operations be performed, to achieve desirableresults. In certain circumstances, multitasking and parallel processingmay be advantageous. Moreover, the separation of various systemcomponents in the embodiments described above should not be understoodas requiring such separation in all embodiments, and it should beunderstood that the described program components and systems cangenerally be integrated together in a single software product orpackaged into multiple software products.

Thus, particular embodiments of the subject matter have been described.Other embodiments are within the scope of the following claims. In somecases, the actions recited in the claims can be performed in a differentorder and still achieve desirable results. In addition, the processesdepicted in the accompanying figures do not necessarily require theparticular order shown, or sequential order, to achieve desirableresults. In certain embodiments, multitasking and parallel processingmay be advantageous.

Many modifications and other embodiments of the disclosure set forthherein will come to mind to one skilled in the art to which theseembodiments pertain having the benefit of the teachings presented in theforegoing descriptions and the associated drawings. Therefore, it is tobe understood that the embodiments are not to be limited to the specificembodiments disclosed and that modifications and other embodiments areintended to be included within the scope of the appended claims.Although specific terms are employed herein, they are used in a genericand descriptive sense only and not for purposes of limitation.

What is claimed is:
 1. A method comprising: receiving, by an integrationsystem, a first account number and a second account number; determining,based on a comparison between the first account number and a set ofstored account numbers, that the first account number is a valid accountnumber; determining, based on a comparison between the second accountnumber and the set of stored account numbers, that the second accountnumber is an invalid account number; retrieving, based on thedetermination that the first account number is a valid account number,information about a device associated with the first account number,wherein the device is a device on a home network of a consumer, whereinthe device includes legacy software or firmware; and providing data tothe device associated with the first account number that facilitatesprovisioning of content to the device associated with the first accountnumber, the data including at least one of: third party software orthird party firmware associated with a third-party network.
 2. Themethod of claim 1, wherein the receiving the first account numbercomprises receiving the first account number from the third-partynetwork, the receiving performed over the Internet.
 3. The method ofclaim 1, further comprising performing one or more synchronizationoperations comprising determining a channel mapping between the homenetwork and the third-party network.
 4. The method of claim 1, whereinreceiving the first account number comprises receiving data from abilling system on the home network.
 5. The method of claim 1, furthercomprising retrieving, from the third-party network over the Internet, athird-party account number that is associated with the first accountnumber.
 6. The method of claim 5, further comprising determining thatthe first account number requires synchronization based on a type of anaccount associated with the first account number.
 7. The method of claim5, further comprising performing one or more synchronization operationswherein the synchronization operations are based at least in part on thethird-party account number.
 8. The method of claim 1, wherein theproviding data to the device comprises receiving data from a seconddevice associated with the third-party network.
 9. The method of claim1, further comprising determining, one or more rules indicative ofaccount permissions associated with the account.
 10. The method of claim9, wherein providing data to the device is further based at least inpart on the one or more rules.
 11. A system comprising: at least onememory that stores computer-executable instructions; and at least oneprocessor of the one or more processors configured to access the atleast one memory, wherein the at least one processor of the one or moreprocessors is configured to execute the computer-executable instructionsto: receive a first account number and a second account number;determine, based on a comparison between the first account number and aset of stored account numbers, that the first account number is a validaccount number; determine, based on a comparison between the secondaccount number and the set of stored account numbers, that the secondaccount number is an invalid account number; retrieve, based on thedetermination that the first account number is a valid account number,information about a device associated with the first account number,wherein the device is a device on a home network of a consumer, whereinthe device includes legacy software or firmware; and provide data to thedevice associated with the first account number that facilitatesprovisioning of content to the device associated with the first accountnumber, wherein the data includes at least one of: third party softwareor third party firmware associated with a third-party network.
 12. Thesystem of claim 11, wherein causing to receive, by the at least oneprocessor, the first account number comprises causing to receive, by theat least one processor, the first account number from one or more seconddevices associated with the third-party network, wherein further thereceiving is performed over the Internet.
 13. The system of claim 11,further comprising perform, by the at least one processor, one or moresynchronization operations comprising determining a channel mappingbetween the home network and the third-party network.
 14. The system ofclaim 11, wherein receiving, by the at least one processor, the accountnumber comprises causing to receive, by the at least one processor, datafrom a billing system on the home network.
 15. The system of claim 11,wherein the at least one processor is further configured to execute thecomputer-executable instructions to retrieve, by the at least oneprocessor, from the third-party network over the Internet, a third-partyaccount number that is associated with the first account number.
 16. Thesystem of claim 15, wherein the at least one processor is furtherconfigured to execute the computer-executable instructions to determinethat the first account number requires synchronization based on a typeof an account associated with the first account number.
 17. The systemof claim 15, wherein the at least one processor is further configured toexecute the computer-executable instructions to perform one or moresynchronization operations, wherein the synchronization is based atleast in part on the third-party account number.
 18. The system of claim11, wherein causing to provide data, by the at least one processor, tothe device further comprises causing to receive, by the at least oneprocessor, data from a second device associated with the third-partynetwork, wherein further.
 19. The system of claim 11, wherein the atleast one processor is further configured to execute thecomputer-executable instructions to determine, by the at least oneprocessor, one or more rules indicative of account permissionsassociated with the account.
 20. The system of claim 19, wherein causingto provide, by the at least one processor, data to the device is furtherbased at least in part on the one or more rules.